common.skill

MVC আর্কিটেকচার (Model-View-Controller Architecture)

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core)
250
250

MVC (Model-View-Controller) আর্কিটেকচার একটি জনপ্রিয় সফটওয়্যার ডিজাইন প্যাটার্ন যা অ্যাপ্লিকেশনগুলির মধ্যে ডেটা, ইউজার ইন্টারফেস এবং বিজনেস লজিক আলাদা করতে ব্যবহৃত হয়। এটি বিশেষভাবে ওয়েব অ্যাপ্লিকেশন এবং ডেক্সটপ অ্যাপ্লিকেশন ডেভেলপমেন্টে ব্যবহার করা হয়, যেখানে ক্লিয়েন্ট এবং সার্ভার সাইডের লজিক পৃথকভাবে পরিচালিত হয়।

ASP.NET Core-এ MVC আর্কিটেকচার ব্যবহার করা হয় একটি ওয়েব অ্যাপ্লিকেশন তৈরি করার জন্য, যা Model, View এবং Controller এর মাধ্যমে ডেটা এবং ইউজার ইন্টারফেসের মধ্যে যোগাযোগ স্থাপন করে।


MVC আর্কিটেকচারের উপাদানসমূহ

Model (মডেল)

Model হলো অ্যাপ্লিকেশনের ডেটা এবং বিজনেস লজিকের প্রতিনিধিত্ব। এটি সাধারণত ডেটাবেসের সাথে সম্পর্কিত এবং ব্যবহারকারীর ইনপুটের প্রেক্ষিতে ডেটা প্রক্রিয়া করে। Model অ্যাপ্লিকেশনের লজিকাল অংশ যা ডেটা এবং তার প্রক্রিয়াকরণের জন্য দায়ী।

Model এর কাজ:

  • ডেটা সংরক্ষণ এবং প্রক্রিয়াকরণ।
  • ডেটাবেসের সাথে যোগাযোগ (যেমন: CRUD অপারেশন)।
  • অ্যাপ্লিকেশনের লজিক সম্পাদন।

উদাহরণ:
যদি আপনি একটি ব্লগ অ্যাপ্লিকেশন তৈরি করেন, তবে ব্লগ পোস্টের ডেটা এবং সেগুলির সাথে সম্পর্কিত বিজনেস লজিক Model-এ থাকবে।

View (ভিউ)

View হলো ইউজার ইন্টারফেসের অংশ। এটি ডেটা প্রেজেন্টেশনের জন্য দায়ী এবং ইউজারের কাছে তথ্য উপস্থাপন করে। View Model থেকে ডেটা গ্রহণ করে এবং এটি HTML, CSS বা অন্যান্য ফরম্যাটে রেন্ডার করে।

View এর কাজ:

  • ইউজার ইন্টারফেস তৈরি।
  • ডেটা প্রদর্শন এবং ব্যবহারকারীর কাছ থেকে ইনপুট সংগ্রহ।
  • HTML এবং অন্যান্য ফরম্যাটে ডেটা রেন্ডার করা।

উদাহরণ:
একটি ব্লগ পেজ যেখানে ব্লগ পোস্টগুলি তালিকা আকারে দেখানো হয়, এবং ব্যবহারকারী নতুন পোস্ট যোগ করতে পারে—এটি হবে View।

Controller (কন্ট্রোলার)

Controller হলো অ্যাপ্লিকেশনের মেজর অংশ যা Model এবং View এর মধ্যে যোগাযোগের দায়িত্বে থাকে। এটি ইউজারের ইনপুট গ্রহণ করে এবং তা যথাযথ Model বা View এ প্রেরণ করে। Controller লজিকাল অংশ হিসেবে কাজ করে যা ইউজার থেকে অ্যাকশন গ্রহণ করে, Model-এ ডেটা আপডেট করে এবং View-এ রেসপন্স প্রেরণ করে।

Controller এর কাজ:

  • ইউজারের রিকোয়েস্ট গ্রহণ করা।
  • প্রয়োজনীয় ডেটা Model থেকে আহরণ করা বা তৈরি করা।
  • View এ ডেটা প্রেরণ করে ইউজারকে রেসপন্স দেওয়া।

উদাহরণ:
একটি ব্লগ অ্যাপ্লিকেশনে, ব্লগ পোস্ট দেখার জন্য যখন ইউজার ক্লিক করবে, তখন Controller সেই রিকোয়েস্ট গ্রহণ করে Model থেকে পোস্ট ডেটা নিয়ে View-এ রেন্ডার করবে।


MVC আর্কিটেকচারের কাজের প্রক্রিয়া

  1. User Request: ইউজার একটি অ্যাকশন বা রিকোয়েস্ট করে, যেমন একটি পেজ দেখতে চায় বা নতুন ডেটা যুক্ত করতে চায়।
  2. Controller: Controller এই রিকোয়েস্ট গ্রহণ করে এবং তা প্রক্রিয়া করে। এটি প্রয়োজনীয় ডেটা Model থেকে চায় অথবা কোনো লজিক সম্পাদন করে।
  3. Model: Model ডেটা তৈরি বা প্রক্রিয়া করে এবং Controller কে ফিরিয়ে দেয়।
  4. View: Controller Model থেকে প্রাপ্ত ডেটা View-এ পাঠায়, যা HTML বা অন্য কোন ফরম্যাটে রেন্ডার হয়ে ইউজারের কাছে উপস্থাপন হয়।
  5. User Response: ইউজার View থেকে ইনপুট প্রদান করতে পারে, যা আবার Controller কে প্রেরণ করা হয় এবং সেই অনুযায়ী প্রক্রিয়া চলতে থাকে।

MVC আর্কিটেকচারের সুবিধা

1. পুনরায় ব্যবহারযোগ্যতা (Reusability)

Model, View, এবং Controller আলাদা হওয়ায়, কোডের প্রতিটি অংশ পুনরায় ব্যবহার করা সহজ হয়। একাধিক View বা Controller একটি Model ব্যবহার করতে পারে।

2. টেস্টিং সুবিধা (Testability)

MVC আর্কিটেকচার কোডকে আলাদা করে দেওয়ার ফলে, প্রতিটি অংশ আলাদাভাবে টেস্ট করা সম্ভব হয়। Model, View এবং Controller আলাদা হওয়ায় একে একে টেস্ট করা সহজ হয়।

3. কোডের সুসংগতি (Maintainability)

এটি কোডের ভালো মান বজায় রাখতে সাহায্য করে কারণ প্রত্যেকটি অংশ (Model, View, Controller) একটি নির্দিষ্ট দায়িত্ব পালন করে এবং পরিবর্তন বা আপডেট করা সহজ হয়।

4. স্কেলেবিলিটি (Scalability)

এটি অ্যাপ্লিকেশনকে সহজে স্কেল করার সুযোগ দেয়, কারণ Model, View, এবং Controller-এর মধ্যে যে কোনও একটি পরিবর্তন করা হলে তা অন্য অংশগুলোর ওপর প্রভাব ফেলবে না।

5. এলার্জি এবং ফ্রন্ট-এন্ড স্বাধীনতা (Separation of Concerns)

এটির মাধ্যমে, বিজনেস লজিক, ডেটা, এবং প্রেজেন্টেশন একে অপর থেকে আলাদা রাখা হয়, যা কোডের রক্ষণাবেক্ষণ এবং ডিবাগিংকে সহজ করে তোলে।


ASP.NET Core MVC প্রজেক্টের উদাহরণ

ধরা যাক আপনি একটি ব্লগ অ্যাপ তৈরি করতে চান, যেখানে আপনি ব্লগ পোস্ট দেখবেন, তৈরি করবেন বা মুছে ফেলবেন।

  • Model: BlogPost ক্লাস থাকবে, যা ডেটাবেসের সাথে সংযুক্ত হবে এবং ব্লগ পোস্টের ডেটা ধারণ করবে (যেমন: শিরোনাম, বিষয়বস্তু, তৈরি তারিখ)।
  • View: ব্লগ পোস্টগুলি রেন্ডার করার জন্য একটি Razor Page বা HTML পেজ তৈরি করা হবে, যেখানে ইউজার ব্লগ পোস্টগুলো দেখতে বা তৈরি করতে পারবে।
  • Controller: BlogController ক্লাস থাকবে, যা ব্লগ সম্পর্কিত সমস্ত অ্যাকশন (যেমন ব্লগ পোস্ট তৈরি, দেখানো, মুছে ফেলা) পরিচালনা করবে।

MVC আর্কিটেকচার একটি খুবই শক্তিশালী এবং জনপ্রিয় ডিজাইন প্যাটার্ন যা অ্যাপ্লিকেশন তৈরি এবং রক্ষণাবেক্ষণকে সহজ, কার্যকরী এবং স্কেলেবল করে তোলে। ASP.NET Core এই আর্কিটেকচারের মাধ্যমে ডেভেলপারদের একটি পরিষ্কার এবং সুসংগঠিত কোডবেস প্রদান করে, যা ডেভেলপমেন্ট এবং মেইন্টেন্যান্সের জন্য অত্যন্ত সুবিধাজনক।

common.content_added_by

MVC প্যাটার্নের মৌলিক ধারণা

224
224

MVC হলো Model-View-Controller প্যাটার্নের সংক্ষিপ্ত রূপ। এটি একটি স্থাপত্যিক প্যাটার্ন যা সফটওয়্যার ডেভেলপমেন্টে UI (User Interface) এবং ব্যাকএন্ড লজিকের মধ্যে বিভাজন তৈরি করতে ব্যবহৃত হয়। ASP.NET Core-এ এই প্যাটার্নটি অত্যন্ত জনপ্রিয় এবং শক্তিশালী, যা ডেভেলপারদের ওয়েব অ্যাপ্লিকেশন নির্মাণে সুসংগঠিত এবং সহজ পদ্ধতি প্রদান করে।


MVC প্যাটার্নের মূল ধারণা

MVC প্যাটার্ন অ্যাপ্লিকেশনকে তিনটি ভিন্ন কম্পোনেন্টে ভাগ করে:

Model

Model হলো ডেটার প্রতিনিধিত্বকারী স্তর। এটি ডেটাবেস, বিজনেস লজিক এবং ডেটা প্রসেসিং-এর সাথে কাজ করে। Model ডেটার কাঠামো এবং ডেটাবেস অপারেশনের জন্য দায়ী। এটি মূলত ডেটার স্টোরেজ এবং হ্যান্ডলিং সংক্রান্ত কার্যক্রম সম্পাদন করে।

কাজের ক্ষেত্র:

  • ডেটার স্ট্রাকচার (ক্লাস তৈরি)।
  • ডেটা ভ্যালিডেশন।
  • ডেটাবেস থেকে ডেটা রিড এবং রাইট করা।

উদাহরণ:

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

View

View হলো ব্যবহারকারীর সামনে প্রদর্শিত UI (User Interface) অংশ। এটি শুধুমাত্র ডেটা উপস্থাপনের জন্য দায়ী এবং ডেটার কোন প্রকার প্রসেসিং করে না। View-তে HTML, CSS এবং Razor Syntax ব্যবহার করে UI তৈরি করা হয়।

কাজের ক্ষেত্র:

  • ডেটা উপস্থাপন করা।
  • HTML এবং Razor সিনট্যাক্সের মাধ্যমে ব্যবহারকারীর জন্য তথ্য প্রদর্শন।

উদাহরণ:

<h1>Product List</h1>
<table>
    <tr>
        <th>Id</th>
        <th>Name</th>
        <th>Price</th>
    </tr>
    @foreach (var product in Model)
    {
        <tr>
            <td>@product.Id</td>
            <td>@product.Name</td>
            <td>@product.Price</td>
        </tr>
    }
</table>

Controller

Controller হলো ব্যবহারকারী এবং সিস্টেমের মধ্যে যোগাযোগের মাধ্যম। এটি রিকোয়েস্ট গ্রহণ করে, Model থেকে ডেটা সংগ্রহ করে এবং সেই ডেটা View-তে পাঠায়। Controller মূলত অ্যাপ্লিকেশনের ডেটা প্রসেসিং লজিক এবং রিকোয়েস্ট রেসপন্স সাইকেলের জন্য দায়ী।

কাজের ক্ষেত্র:

  • রিকোয়েস্ট গ্রহণ এবং প্রসেস করা।
  • Model এবং View-এর মধ্যে সংযোগ স্থাপন।
  • অ্যাপ্লিকেশনের লজিক নিয়ন্ত্রণ।

উদাহরণ:

public class ProductController : Controller
{
    public IActionResult Index()
    {
        var products = new List<Product>
        {
            new Product { Id = 1, Name = "Laptop", Price = 800.00M },
            new Product { Id = 2, Name = "Smartphone", Price = 500.00M }
        };
        return View(products);
    }
}

MVC প্যাটার্নের কাজের প্রক্রিয়া

  1. ব্যবহারকারী ব্রাউজারে একটি HTTP রিকোয়েস্ট পাঠায়।
  2. Controller রিকোয়েস্টটি গ্রহণ করে এবং প্রাসঙ্গিক Model থেকে ডেটা সংগ্রহ করে।
  3. Model ডেটা প্রস্তুত করে Controller-এ পাঠায়।
  4. Controller প্রাপ্ত ডেটা View-তে পাঠায়।
  5. View ডেটা ব্যবহারকারীর জন্য উপস্থাপন করে এবং একটি HTML রেসপন্স রিটার্ন করে।

MVC প্যাটার্ন ব্যবহার করার সুবিধা

  • মডুলার আর্কিটেকচার: কোড সহজে মেইনটেইন এবং আপডেট করা যায়।
  • Separation of Concerns: UI, ডেটা লজিক এবং প্রসেসিং লজিক পৃথক থাকে।
  • রিইউজেবল কোড: Model এবং View পুনরায় ব্যবহারযোগ্য হয়।
  • স্কেলেবিলিটি: বড় অ্যাপ্লিকেশন সহজে স্কেল করা যায়।

ASP.NET Core-এ MVC এর ভূমিকা

ASP.NET Core-এ MVC প্যাটার্নটি অত্যন্ত কার্যকরী কারণ এটি ডেভেলপারদের একটি সুসংগঠিত এবং উন্নততর ওয়েব অ্যাপ্লিকেশন তৈরির সুযোগ দেয়। এটি বিশেষ করে ডেটা-চালিত ওয়েব অ্যাপ এবং API তৈরিতে ব্যবহৃত হয়। Routing, Middleware, এবং Dependency Injection এর মতো ফিচার MVC প্যাটার্নকে আরও শক্তিশালী করে।

MVC প্যাটার্ন ওয়েব ডেভেলপমেন্টে একটি মানসম্মত পদ্ধতি এবং ডেভেলপারদের জন্য এটি সহজ, কার্যকরী এবং প্রায়শই অপরিহার্য।

common.content_added_by

Model, View, এবং Controller এর ভূমিকা

220
220

ASP.NET Core অ্যাপ্লিকেশন তৈরি করার সময় MVC (Model-View-Controller) আর্কিটেকচার একটি খুবই জনপ্রিয় প্যাটার্ন। এটি অ্যাপ্লিকেশনের লজিক, ইউজার ইন্টারফেস এবং ডেটা ম্যানিপুলেশনকে পৃথক করে, যার ফলে কোডের রক্ষণাবেক্ষণ সহজ হয় এবং অ্যাপ্লিকেশনের স্কেলেবিলিটি বৃদ্ধি পায়। MVC প্যাটার্নের মূল তিনটি উপাদান হলো Model, View, এবং Controller। প্রতিটির ভুমিকা আলাদা এবং এটি অ্যাপ্লিকেশনের কার্যকারিতাকে সুসংগঠিত করে।


Model এর ভূমিকা

Model হল অ্যাপ্লিকেশনের ডেটা, লজিক এবং ব্যবসায়িক নিয়ম (business rules) পরিচালনা করার জন্য দায়ী। Model সাধারণত ডেটাবেসের সঙ্গে যোগাযোগ করে এবং তথ্য সংগ্রহ, আপডেট বা মুছে ফেলতে সাহায্য করে।

মূল বৈশিষ্ট্য:

  • ডেটা ম্যানিপুলেশন: Model অ্যাপ্লিকেশনের ডেটা তৈরি, পড়া, আপডেট এবং মুছে ফেলার কাজ করে। এটি ডেটাবেসের সাথে যোগাযোগ করতে পারে (যেমন Entity Framework Core ব্যবহার করে)।
  • ব্যবসায়িক লজিক: Model সাধারণত অ্যাপ্লিকেশনের ব্যবসায়িক লজিক বা rules ধারণ করে।
  • ডেটা স্ট্রাকচার: Model ক্লাসের মধ্যে ডেটা স্ট্রাকচার বা প্রপার্টি থাকতে পারে, যেমন User, Product, Order ইত্যাদি।

উদাহরণ:

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

এখানে Product একটি Model যা ডেটাবেসে একটি প্রোডাক্টের তথ্য ধারণ করবে।


View এর ভূমিকা

View হল ইউজার ইন্টারফেসের অংশ, যা ইউজারের সাথে অ্যাপ্লিকেশনের ইন্টারঅ্যাকশন প্রদান করে। View মূলত HTML, CSS, এবং JavaScript এর মাধ্যমে ডেটা প্রেজেন্ট করে। View শুধুমাত্র ডিসপ্লে বা দেখানোর জন্য দায়ী এবং এর মধ্যে লজিকের কাজ খুবই সীমিত থাকে।

মূল বৈশিষ্ট্য:

  • ইউজার ইন্টারফেস: View ব্যবহারকারীকে উপস্থাপনা বা আউটপুট দেখায়।
  • ডেটা ডিসপ্লে: Model থেকে ডেটা নিয়ে View তা প্রেজেন্ট করে (যেমন Product এর নাম, দাম ইত্যাদি)।
  • UI নিয়ন্ত্রণ: View UI কম্পোনেন্ট যেমন টেবিল, ফর্ম, বাটন ইত্যাদি কন্ট্রোল করে।

উদাহরণ:

@model Product

<div>
    <h1>@Model.Name</h1>
    <p>Price: $@Model.Price</p>
</div>

এখানে Product Model এর ডেটা View-এ প্রদর্শিত হবে, যেমন প্রোডাক্টের নাম এবং দাম।


Controller এর ভূমিকা

Controller অ্যাপ্লিকেশনের ইনপুট গ্রহণ করে এবং Model এবং View-এর মধ্যে যোগাযোগ স্থাপন করে। Controller ইউজারের রিকোয়েস্টকে প্রোসেস করে, প্রয়োজনীয় ডেটা মডেল থেকে নিয়ে তা ভিউতে প্রেরণ করে। Controller অ্যাপ্লিকেশন লজিকের নিয়ন্ত্রণকারী।

মূল বৈশিষ্ট্য:

  • ইনপুট প্রসেসিং: Controller ইউজারের রিকোয়েস্ট গ্রহণ করে এবং তা প্রক্রিয়া করে।
  • ডেটা আপডেট এবং রিটার্ন: Controller ডেটাবেস বা মডেল থেকে ডেটা নিয়ে আসে এবং তা View-এ প্রেরণ করে।
  • রাউটিং: Controller রিকোয়েস্ট রাউটিং এবং রিকোয়েস্ট অনুযায়ী সঠিক অ্যাকশন নির্বাচন করে।

উদাহরণ:

public class ProductController : Controller
{
    private readonly IProductService _productService;

    public ProductController(IProductService productService)
    {
        _productService = productService;
    }

    public IActionResult Index()
    {
        var products = _productService.GetAllProducts();
        return View(products);
    }
}

এখানে ProductController ইউজারের রিকোয়েস্ট গ্রহণ করে এবং Product ডেটা Index View-এ পাঠায়।


Model, View, এবং Controller এর মধ্যে সম্পর্ক

  • Model ডেটা ধারণ করে এবং ব্যবসায়িক লজিক পরিচালনা করে।
  • View ব্যবহারকারীর কাছে ডেটা প্রদর্শন করে, তবে এর মধ্যে লজিক কম থাকে।
  • Controller ইউজারের ইনপুট প্রক্রিয়া করে এবং Model এবং View এর মধ্যে যোগাযোগ স্থাপন করে।

এই তিনটি উপাদান মিলে অ্যাপ্লিকেশনের কার্যকারিতা এবং রক্ষণাবেক্ষণ সহজ করে, কারণ তারা প্রতিটি স্তরের দায়িত্ব আলাদা করে দেয়, যা অ্যাপ্লিকেশনটিকে আরো স্কেলেবল এবং মডুলার করে তোলে।

common.content_added_by

প্রথম ASP.NET Core MVC প্রজেক্ট তৈরি করা

222
222

ASP.NET Core MVC (Model-View-Controller) একটি জনপ্রিয় আর্কিটেকচারাল প্যাটার্ন, যা ব্যবহারকারীর ইন্টারফেস, অ্যাপ্লিকেশন লজিক এবং ডেটা মডেল আলাদা রাখে। MVC প্রজেক্ট তৈরি করার মাধ্যমে আপনি ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারবেন যা ডেটাবেসের সঙ্গে ইন্টারঅ্যাক্ট করবে এবং ব্যবহারকারীর আউটপুট দেখাবে।


প্রথম ASP.NET Core MVC প্রজেক্ট তৈরি করার জন্য প্রস্তুতি

এর জন্য আপনার মেশিনে .NET SDK এবং Visual Studio বা Visual Studio Code ইন্সটল থাকতে হবে। যদি আপনি এগুলো ইন্সটল করে থাকেন, তাহলে আপনি খুব সহজেই ASP.NET Core MVC প্রজেক্ট তৈরি করতে পারবেন।


Visual Studio ব্যবহার করে ASP.NET Core MVC প্রজেক্ট তৈরি করা

  1. Visual Studio ওপেন করুন:
    • Visual Studio ওপেন করুন এবং Create a new project নির্বাচন করুন।
  2. প্রজেক্ট টেমপ্লেট নির্বাচন করুন:
    • প্রজেক্ট টাইপ নির্বাচন করতে ASP.NET Core Web Application টেমপ্লেট নির্বাচন করুন এবং Next ক্লিক করুন।
  3. প্রজেক্ট কনফিগারেশন:
    • প্রজেক্টের নাম, লোকেশন এবং সলিউশন নাম নির্বাচন করুন।
    • পরবর্তীতে Create ক্লিক করুন।
  4. টেমপ্লেট নির্বাচন:
    • পরবর্তী স্ক্রিনে, Web Application (Model-View-Controller) নির্বাচন করুন এবং Create ক্লিক করুন।
  5. প্রজেক্ট তৈরি করা:
    • Visual Studio আপনার জন্য প্রজেক্টটি তৈরি করবে। এটি আপনাকে MVC আর্কিটেকচার অনুযায়ী ফোল্ডার স্ট্রাকচার, Razor Views, এবং Controller তৈরি করবে।
  6. প্রজেক্ট রান করুন:
    • প্রজেক্টটি তৈরি হওয়ার পর, Run বা F5 চাপুন, এটি আপনার প্রজেক্ট চালু করবে। আপনি ব্রাউজারে https://localhost:5001 এ গিয়ে অ্যাপ দেখতে পাবেন।

Command Line ব্যবহার করে ASP.NET Core MVC প্রজেক্ট তৈরি করা

যদি আপনি Visual Studio ব্যবহার না করতে চান, তাহলে আপনি .NET CLI (Command Line Interface) ব্যবহার করে প্রজেক্টটি তৈরি করতে পারবেন।

  1. কমান্ড প্রম্পট বা টার্মিনাল ওপেন করুন:
    • Windows-এ Command Prompt বা PowerShell ব্যবহার করুন।
    • macOS বা Linux-এ Terminal ব্যবহার করুন।
  2. নতুন ASP.NET Core MVC প্রজেক্ট তৈরি করুন:
    • নিচের কমান্ডটি ব্যবহার করুন:

      dotnet new mvc -n MyFirstMvcApp
      

      এই কমান্ডটি MyFirstMvcApp নামের একটি নতুন ASP.NET Core MVC প্রজেক্ট তৈরি করবে।

  3. প্রজেক্ট ফোল্ডারে যান:
    • প্রজেক্ট তৈরি হলে, প্রজেক্ট ফোল্ডারে যেতে হবে:

      cd MyFirstMvcApp
      
  4. প্রজেক্ট রান করুন:
    • প্রজেক্ট চালানোর জন্য নিচের কমান্ডটি ব্যবহার করুন:

      dotnet run
      

      এটি আপনার প্রজেক্ট রান করবে এবং আপনি https://localhost:5001 এ গিয়ে অ্যাপটি দেখতে পারবেন।


ASP.NET Core MVC প্রজেক্টের ফোল্ডার স্ট্রাকচার

ASP.NET Core MVC প্রজেক্ট তৈরি হলে, এর মধ্যে কিছু মৌলিক ফোল্ডার এবং ফাইল থাকে:

  • Controllers: এখানে আপনার অ্যাপ্লিকেশনের Controller ফাইল থাকবে, যা অ্যাকশন এবং রেসপন্স পরিচালনা করে।
  • Views: এখানে Razor Views ফাইল থাকবে, যা HTML এর মধ্যে C# কোড এক্সিকিউট করতে ব্যবহৃত হয়।
  • Models: এখানে ডেটা মডেল ক্লাস থাকবে, যা ডেটাবেসের তথ্য বা ডেটা অবজেক্টগুলো ধারণ করবে।
  • wwwroot: এখানে স্ট্যাটিক ফাইল (যেমন CSS, JavaScript, ইমেজ) সংরক্ষণ করা হয়।
  • appsettings.json: এখানে অ্যাপ্লিকেশনের কনফিগারেশন সেটিংস থাকে, যেমন ডেটাবেস সংযোগ তথ্য।
  • Startup.cs: এখানে অ্যাপ্লিকেশনের স্টার্টআপ কনফিগারেশন থাকে, যেমন Middleware, Routing, এবং DI কনফিগারেশন।

Controller, View এবং Model যুক্ত করা

Controller

প্রথমে, একটি Controller তৈরি করুন যা আপনার অ্যাপ্লিকেশনের লজিক পরিচালনা করবে। Controllers ফোল্ডারে একটি নতুন HomeController.cs ফাইল তৈরি করুন এবং নিম্নলিখিত কোড যোগ করুন:

using Microsoft.AspNetCore.Mvc;

namespace MyFirstMvcApp.Controllers
{
    public class HomeController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }
    }
}

View

এখন, Views ফোল্ডারে একটি Home ফোল্ডার তৈরি করুন এবং তার মধ্যে Index.cshtml ফাইল তৈরি করুন। এই ফাইলে HTML এবং Razor সিঙ্কট্যাক্স ব্যবহার করে কন্টেন্ট যোগ করুন:

@{
    ViewData["Title"] = "Home Page";
}

<h1>Welcome to My First ASP.NET Core MVC App!</h1>

Model

আপনার মডেল তৈরি করতে, Models ফোল্ডারে একটি Product.cs ফাইল তৈরি করুন:

namespace MyFirstMvcApp.Models
{
    public class Product
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public decimal Price { get; set; }
    }
}

Conclusion

ASP.NET Core MVC প্রজেক্ট তৈরি করা খুবই সহজ এবং দ্রুত। Visual Studio বা Command Line Interface (CLI) ব্যবহার করে আপনি একটি MVC প্রজেক্ট তৈরি করতে পারেন, এবং এর মধ্যে Controller, View, এবং Model যুক্ত করতে পারেন। এটি আপনাকে MVC প্যাটার্ন অনুসরণ করে একটি ওয়েব অ্যাপ্লিকেশন ডেভেলপ করতে সহায়তা করবে।

common.content_added_by

Routing এবং Controller Action

286
286

ASP.NET Core-এ Routing হলো একটি প্রক্রিয়া যা ইনকামিং HTTP রিকোয়েস্টকে সঠিক Controller এবং Action Method-এর সাথে ম্যাপ করে। এটি ASP.NET Core অ্যাপ্লিকেশনের অন্যতম গুরুত্বপূর্ণ অংশ, কারণ এটি ঠিক করে দেয় যে ব্যবহারকারীর রিকোয়েস্টের উপর ভিত্তি করে অ্যাপ্লিকেশন কীভাবে সাড়া দেবে।

Controller এবং Action Method হলো MVC (Model-View-Controller) আর্কিটেকচারের মৌলিক অংশ, যা অ্যাপ্লিকেশনের লজিক এবং ডেটা প্রসেসিং পরিচালনা করে।


Routing কী?

Routing ASP.NET Core-এ ইনকামিং URL-এর ভিত্তিতে সঠিক Controller এবং Action Method নির্বাচন করার জন্য ব্যবহৃত হয়। এটি Middleware Pipeline-এর অংশ এবং Startup.cs-এ কনফিগার করা হয়। Routing দুটি প্রধান পদ্ধতিতে কাজ করে:

  • Convention-based Routing: Routing রুল বা প্যাটার্নের ভিত্তিতে কাজ করে।
  • Attribute Routing: Controller এবং Action Method-এর উপরে সরাসরি ডেকোরেটর হিসেবে Route অ্যাট্রিবিউট ব্যবহার করে কাজ করে।

Convention-based Routing

Convention-based Routing হলো একটি রুল-ভিত্তিক পদ্ধতি যেখানে Routing প্যাটার্নগুলো নির্দিষ্টভাবে Startup.cs-এর মধ্যে সংজ্ঞায়িত করা হয়।

উদাহরণ:

Startup.cs ফাইলে নিচের কোডটি দেখুন:

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
});
  • pattern: {controller=Home}/{action=Index}/{id?}
    • {controller=Home}: ডিফল্ট Controller হলো Home
    • {action=Index}: ডিফল্ট Action Method হলো Index
    • {id?}: id একটি অপশনাল প্যারামিটার।

কাজের পদ্ধতি:

যদি ব্যবহারকারী /Products/Details/5 URL প্রদান করেন:

  • Controller: Products
  • Action Method: Details
  • id: 5

Attribute Routing

Attribute Routing হলো একটি পদ্ধতি যেখানে Routing নিয়মগুলো সরাসরি Controller এবং Action Method-এর উপরে সংজ্ঞায়িত করা হয়। এটি সাধারণত বেশি স্পষ্ট এবং সহজতর হয়।

উদাহরণ:

[Route("products")]
public class ProductsController : Controller
{
    [Route("details/{id}")]
    public IActionResult Details(int id)
    {
        // প্রোডাক্টের ডিটেইলস রিটার্ন করুন
        return View();
    }
}
  • Controller Route: /products
  • Action Route: /products/details/{id}

কাজের পদ্ধতি:

যদি ব্যবহারকারী /products/details/10 URL প্রদান করেন:

  • Controller: ProductsController
  • Action Method: Details
  • id: 10

Controller এবং Action Method

Controller কী?

Controller হলো ASP.NET Core-এ একটি ক্লাস, যা ব্যবহারকারীর রিকোয়েস্ট প্রসেস করে এবং উপযুক্ত রেসপন্স প্রদান করে। এটি সাধারণত Controller ক্লাস থেকে ইনহেরিট করে।

Action Method কী?

Action Method হলো Controller-এর একটি মেথড, যা নির্দিষ্ট রিকোয়েস্টের জন্য লজিক প্রসেস করে। Action Method সাধারণত IActionResult বা অন্য কোনো ভ্যালু রিটার্ন করে।

Controller এর উদাহরণ:

public class HomeController : Controller
{
    public IActionResult Index()
    {
        return View();
    }

    public IActionResult About()
    {
        return View();
    }
}

কাজের পদ্ধতি:

  • /Home/Index: Index() Method কল হবে।
  • /Home/About: About() Method কল হবে।

Route Parameters

Routing-এ Route Parameters ব্যবহার করে ডাইনামিক ডেটা পাস করা যায়। এটি Convention-based এবং Attribute Routing-এ উভয় ক্ষেত্রেই কাজ করে।

উদাহরণ:

[Route("products/{id}")]
public IActionResult Details(int id)
{
    // ডাটাবেজ থেকে প্রোডাক্টের তথ্য বের করুন
    var product = _productService.GetProductById(id);
    return View(product);
}

কাজের পদ্ধতি:

  • URL: /products/5
  • id: 5

Optional Parameters

Routing-এ প্যারামিটারগুলো Optional করা যায়, যা URL না থাকলেও কাজ করবে।

উদাহরণ:

[Route("products/{id?}")]
public IActionResult Details(int? id)
{
    if (id == null)
    {
        // ডিফল্ট ভিউ রিটার্ন করুন
        return View("AllProducts");
    }
    return View();
}

Default Routes

Routing-এ Default Values সেট করা যায়, যা প্যারামিটার না থাকলে ব্যবহার করা হবে।

উদাহরণ:

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
});

কাজের পদ্ধতি:

  • URL: / → Controller: Home, Action: Index

Routing Middleware

Routing ASP.NET Core-এ Middleware হিসাবে কাজ করে এবং এটি Startup.cs-এ কনফিগার করতে হয়।

উদাহরণ:

public void Configure(IApplicationBuilder app)
{
    app.UseRouting();
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });
}

Routing এবং Controller Action ASP.NET Core-এ ব্যবহারকারীর রিকোয়েস্ট পরিচালনা করার একটি শক্তিশালী উপায়। এটি আপনার অ্যাপ্লিকেশনকে আরও ডাইনামিক, ফ্লেক্সিবল এবং ব্যবহারকারীর চাহিদা অনুযায়ী কাস্টমাইজ করার সুযোগ দেয়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion